package com.gage.mapper;

import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import com.baomidou.mybatisplus.plugins.pagination.Pagination;
import com.gage.model.CmsCatalog;


@Repository
public interface CmsCatalogMapper {

	/*********20170513************/
	List<CmsCatalog> findCatalogByPidAndType(@Param("pid") String pid,@Param("catalogType") String catalogType);
	Integer getCountChild(@Param("pid") String pid,@Param("catalogType") String catalogType);
	List<Map<String, Object>> selectCatalogPage(Pagination page, Map<String, Object> params);
	List<Integer> getChildCatalogIdList(@Param("pid") String pid);
	int getLevel(@Param("catalogcode") String catalogcode);
	CmsCatalog loadCatalog(@Param("catalogcode") String catalogcode);
	int updateByCatalogCodeSelective(CmsCatalog cmsCatalog);
	void updateCatalogsLevel(@Param("ids") List<Integer> ids,@Param("i") Integer i);
	int insertSelective(CmsCatalog cmsCatalog);
	Integer deleteByIds(@Param("ids") List<String> ids);
	/***************/
	List<CmsCatalog> findByCondition(@Param("id") Integer id);
	List<CmsCatalog> findByCondition2(@Param("userid") String userid,@Param("id") Integer id);

	Integer getCountChild2(@Param("userid") String userid,@Param("id") Integer id);
	List<Integer> findSetAllIds(@Param("userid") String userid);
	Integer getMaxSequence(@Param("id") Integer id);

	
	
	CmsCatalog getCatalogByAlias(@Param("alias") String alias);
	//Integer getAliasCount(@Param("alias") String alias);
	String getCheckCode(@Param("id") Integer id);
	void updateCheckCode(@Param("id") Integer id, @Param("checkcode") String string);
	
	List<CmsCatalog> getChildByCheckCode(@Param("catalogtype") String catalogtype, @Param("checkcode") String checkcode);
	int getDepartmentCountChild(@Param("id")  Integer id);
	List<CmsCatalog> findDepartmentByCondition( @Param("id") Integer id);
	
	CmsCatalog findprofessor(@Param("id") Integer id);
	
	List<CmsCatalog> findByConditionCatalog();
	
	CmsCatalog  findcatalogCheckcode(@Param("id") String id);
	
	/**
	 * 关键字查询分页
	 * @param catalogid 
	 * @param catalogName 
	 * @return
	 */
	List<CmsCatalog> searchCatalogInfo(@Param("keyword") String keyword,
								    @Param("startIndex") int startIndex,
					                @Param("pageShowNum") int pageShowNum,
					                @Param("order") String order,
					                @Param("catalogid") int catalogid);
	/**
	 * 关键字查询分页总数
	 * @param catalogid 
	 * @param catalogName 
	 * @return
	 */
	int searchCatalogInfoCount(@Param("keyword") String keyword,
								         @Param("startIndex") int startIndex,
					                     @Param("pageShowNum") int pageShowNum,
					                     @Param("order") String order,
					                     @Param("catalogid") int catalogid);
	
	/**
	 * 分页查询数据
	 * @param keyword
	 * @param startIndex
	 * @param enfIndex
	 * @param order
	 * @return
	 */
	List<CmsCatalog> loadMoreCatalogInfo(@Param("keyword") String keyword,
			 						  @Param("startIndex") int startIndex,
			                          @Param("pageShowNum") int pageShowNum,
			                          @Param("order") String order,
			                          @Param("catalogid") int catalogid);
	/**
	 * 分页查询数据总条数
	 * @param keyword
	 * @param startIndex
	 * @param enfIndex
	 * @param order
	 * @return
	 */
	int loadMoreCatalogInfoCount(@Param("keyword") String keyword,
								 @Param("startIndex") int startIndex,
								 @Param("pageShowNum") int pageShowNum,
								 @Param("order") String order,
								 @Param("catalogid") int catalogid);
	
	/**
	 * 点击二级病分页查询数据
	 * @param keyword
	 * @param startIndex
	 * @param enfIndex
	 * @param order
	 * @return
	 */
	List<CmsCatalog> loadMoreCatalogInfo2Menu(@Param("keyword") String keyword,
			 						  @Param("startIndex") int startIndex,
			                          @Param("pageShowNum") int pageShowNum,
			                          @Param("order") String order,
			                          @Param("catalogid") int catalogid);
	/**
	 * 点击二级病分页查询数据总条数
	 * @param keyword
	 * @param startIndex
	 * @param pageShowNum
	 * @param order
	 * @return
	 */
	int loadMoreCatalogInfoCountFor2Menu(@Param("keyword") String keyword,
								 @Param("startIndex") int startIndex,
								 @Param("pageShowNum") int pageShowNum,
								 @Param("order") String order,
								 @Param("catalogid") int catalogid);
	
	
	CmsCatalog getCatalog(@Param("id")Integer catalogid);
}
